#include<iostream>
#include<algorithm>
using namespace std;

//class A
//{
//public:
//	A(int _capacity = 30)
//	{
//		_a = (int*)malloc(sizeof(int) * _capacity);
//		_size = 0;
//	}
//	A(const A& a)
//	{
//		_a  = (int*)malloc(sizeof(int) * a._capacity);
//		memcpy(_a, a._a, a._size * (sizeof(int)));
//		_capacity = a._capacity;
//	}
//	~A()
//	{
//		free(_a);
//		_a = nullptr;
//	}
//private:
//	int* _a;
//	int _size;
//	int _capacity;
//};
//
//void func(A a)
//{
//
//}
//int main()
//{
//	A a;
//	func(a);
//}

//class Date
//{
//public:
//	Date(int year = 1, int month = 1, int day = 1)
//	{
//		_year = year;
//		_month = month;
//		_day = day;
//	}
//	bool operator<(const Date& d)
//	{
//		if (_year < d._year){
//			return true;
//		}
//		else if(_year == d._year && _month<d._month ){
//			return true;
//		}
//		else if (_year == d._year && _month == d._month && _day < d._day) {
//			return true;
//		}
//		else {
//			return false;
//		}
//	}
//private:
//	int _year;
//	int _month;
//	int _day;
//};
//
//int main()
//{
//	Date d1(2023,10,9);
//	Date d2(2024,1,1);
//	cout << (d1 < d2) << endl;
//	cout << d1.operator<(d2) << endl;
//
//}

//int main()
//{
//    string str = "abcde";
//    int num = 1;
//    while (next_permutation(str.begin(), str.end()))
//    {
//        num++;
//        cout << str << endl;
//
//    }
//    return 0;
//}